package com.br.fsm.projectdelivery.controlador;

import java.util.ArrayList;

import com.br.fsm.projectdelivery.basica.Pedido;
import com.br.fsm.projectdelivery.excecao.ControladorException;
import com.br.fsm.projectdelivery.excecao.RepositorioException;
import com.br.fsm.projectdelivery.repositorio.IRepositorioPedido;
import com.br.fsm.projectdelivery.repositorio.RepositorioPedido;

public class ControladorPedido extends ControladorBasico implements IControladorPedido {

	private IRepositorioPedido repositorioPedido;
	private static ControladorPedido instance;

	private ControladorPedido() {
		super();
		repositorioPedido = (IRepositorioPedido) RepositorioPedido
				.getInstance();
	}

	public static ControladorPedido getInstance() {
		if (instance == null) {
			instance = new ControladorPedido();
		}
		return instance;
	}
	
	@Override
	public Pedido getPedidoById(int id) throws ControladorException {
		try {
			return repositorioPedido.getPedidoById(id);
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}

	@Override
	public ArrayList<Pedido> getAllPedido() throws ControladorException {
		try {
			return repositorioPedido.getAllPedido();
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}

	@Override
	public void insertPedido(Pedido pedido) throws ControladorException {
		try {
			repositorioPedido.insertPedido(pedido);
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}

	@Override
	public void updatePedido(Pedido pedido) throws ControladorException {
		try {
			repositorioPedido.updatePedido(pedido);
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}

	@Override
	public void removePedido(Pedido pedido) throws ControladorException {
		try {
			repositorioPedido.removePedido(pedido);
		} catch (RepositorioException e) {
			throw new ControladorException(e.getMessage());
		}
	}
}
